Шаг 9 - Создаем клиента

Загрузить проект
	У меня только один LANA и связь клиент сервер я тестирую сейчас 
	на одном компьютере.Потом протестирую в сети. Данный подход 
	позволил мне всё упростить.
Сначала нам необходимо подготовить буфер в переменной NCB ncb_event. GlobalAlloc выделяет память. CreateEvent создает объект сообщения.
NCB	   ncb;
HANDLE     *events;		
events = (HANDLE *)GlobalAlloc(GMEM_FIXED, sizeof(HANDLE) lenum.length);
ClearStruct(&ncb);
events[0] = CreateEvent(NULL, TRUE, FALSE, NULL);
ncb.ncb_event = events;
В процедуры я добавил изменения смотрите проект.

Первым шагом необходимо проинициализировать LANA - это мы делали и знакомо

	if (ResetNetBios(LANA_NUM)!=NRC_GOODRET) printf("Error Reset \n");
	else printf("God Reset\n");
Добавить имя это тоже нам знакомо
	if (AddNetBiosName(LANA_NUM,CLIENT_NAME)!=NRC_GOODRET) printf("Error Add \n");
	else printf("God Add Name\n");
А вот теперь функция Connect
void Connect(PNCB pncb)
{
     int     dwRetCode;
     // в поле ncb_name имя клиента
     FillMemory(pncb->ncb_name, sizeof(pncb->ncb_name), ' ');
     CopyMemory(pncb->ncb_name, CLIENT_NAME, strlen(CLIENT_NAME));
     // в поле ncb_callname имя сервера
     FillMemory(pncb->ncb_callname, sizeof(pncb->ncb_callname), ' ');
     CopyMemory(pncb->ncb_callname, SERVER_NAME, strlen(SERVER_NAME));
     // команда вызова
     pncb->ncb_command = NCBCALL | ASYNCH;
     dwRetCode = Netbios(pncb);
     if (pncb->ncb_retcode != NRC_PENDING) printf("Error Connect\n");
     return;
}
И наконец ожидание ответа
	while (!done)
	{
		conn = WaitForMultipleObjects(lenum.length, events, FALSE, INFINITE);
		if (ncb.ncb_retcode == NRC_GOODRET)
		{
		    printf("CONNECTED! \n");
		    done = TRUE;
            	}
         }
Для тестирования клиента необходим сервер(программа). Она то у меня работает (в следующем шаге создадим) и поэтому этот шаг протестирован. Сразу хочу предупредить, что если у Вас LANA больше чем 1 и он не равен 0, то могут быть ошибки. Смотрите определения моих макроподстановок
#define CLIENT_NAME "myclient"
#define SERVER_NAME "myserver"
#define MAX_SESSION  50  
#define MAX_NAMES    50
#define LANA_NUM 000

Hosted by uCoz